home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1999 #2 / Amiga Plus CD - 1999 - No. 2.iso / System-Boost / Workbench / Archive / SNESDiz / Source / SnesDiz.Rexx
OS/2 REXX Batch file  |  1998-11-08  |  4KB  |  183 lines

  1. /*
  2.  
  3. Super Nintendo Entertainment System File Identity Description Creator
  4. $VER: SNESDiz 1.0 by DaFoX / OmenBBS
  5.  
  6. */
  7.  
  8. SAY ""
  9. SAY "    [ SNESDiz 1.0 - DaFoX / OmenBBS ]"
  10. SAY ""
  11.  
  12. parse upper arg Afile cdiz FList
  13.  
  14. if cdiz="LIST" then do
  15.   list=1
  16.   cdiz=flist
  17. end
  18.  
  19. if Afile="" then do
  20.   Say "RX SNESDiz.Rexx ? for Help"
  21. Afile = exists('libs:rexxreqtools.library')
  22. if Afile = 0 
  23.  then say "You need RexxReqTools.library"
  24. else call addlib('rexxreqtools.library',0,-30)
  25.  
  26. Afile = rtfilerequest('ram:',,"Pick a Super nintendo file:", ,,
  27.                          'rt_reqpos=reqpos_centerscr')
  28.  
  29. end
  30. else if cdiz~="COM" & cdiz~="DIZ" & cdiz~="FTP" then cdiz=""
  31.  
  32. if AFile="" | AFile="?" then do
  33.   say ""
  34.   say "Usage:"
  35.   Say "      Rx SnesDizz.rexx <File>"
  36.   Say "      Rx SnesDizz.rexx <File> DIZ"
  37.   Say "      Rx SnesDizz.rexx <File> FTP"
  38.   Say "      Rx SnesDizz.rexx <File> COM"
  39.   Say "      Rx SnesDizz.rexx <FILELIST> list FTP"
  40.   Say "         generate a filelist by typeing:"
  41.   say "         list <DIR> Lformat %N > <Filelist>"
  42.   say ""
  43.   Say "or start it without options and select SNES file ;)"
  44. exit
  45. end
  46. if cdiz="DIZ" then do
  47.   say "Creating File_Id.diz"
  48.   call open skriv,"File_Id.diz","W"
  49.   call dodiz
  50.   exit
  51. end
  52. else if cdiz="FTP" then do
  53.  
  54.   if exists('index') then do
  55.   call rtezrequest("Append or OverWrite Index file",,
  56.                  "_Append|_OverWrite","Tell me", 'rt_reqpos=reqpos_centerscr')  
  57.  
  58.     if rtresult == 1
  59.      then call open skriv,"index","A"
  60.     else call open skriv,"index","W"
  61.  
  62.   end
  63.   else call open skriv,"index","W"
  64.   dire=0
  65.   if LIST~=1 then do
  66.  
  67.     dire1=pos(":",Afile)
  68.     if dire1~=0 then dire=dire1
  69.     dire2=pos("/",Afile)
  70.     if dire2~=0 then dire=dire1
  71.     if dire~=0 & dire2~=0 then do until dire2=0
  72.       dire2=pos("/",Afile,dire)
  73.       if dire2~=0 then dire=dire2+1
  74.     end
  75.     if dire~=0 then dire=dire-1
  76.  
  77.     call dodiz
  78.     exit
  79.   end
  80.   else do
  81.     if exists(AFile)==0 then do
  82.       say AFile" Does't Exists";exit
  83.     end
  84.     call open filel,AFile
  85.     filet=readln(filel)
  86.  
  87.     dire1=pos(":",filet)
  88.     if dire1~=0 then dire=dire1
  89.     dire2=pos("/",filet)
  90.     if dire2~=0 then dire=dire1
  91.     if dire~=0 & dire2~=0 then do until dire2=0
  92.       dire2=pos("/",filet,dire)
  93.       if dire2~=0 then dire=dire2+1
  94.     end
  95.     if dire~=0 then dire=dire-1
  96.  
  97.     call close filel
  98.   end
  99. end
  100.  
  101. if LIST=1 then do
  102.   if exists(AFile)==0 then do
  103.     say "Wath list???";exit
  104.   end
  105.   Say "Loading from list"
  106.   call open filel,AFile
  107.   do until eof(filel)
  108.     Afile=readln(filel)
  109.     if Afile~="" then call dodiz
  110.   end
  111.   call close filel
  112.   call close skriv
  113. end
  114. else
  115.   call dodiz
  116. exit
  117.  
  118. dodiz:
  119. if exists(Afile)==0 then do
  120. say "Can't open" Afile;return
  121. end
  122. call open file,Afile
  123. x=0
  124. pass1=""
  125. pass2=""
  126. diz=""
  127.  
  128. call seek(file,33216)
  129. pas1=readch(file,21)
  130.  
  131. test1=c2x(pas1)
  132. do a=2 to 21 by 2
  133.   if x2d(right(left(test1,a),2),2) > 90 then x=x+1
  134.   if x2d(right(left(test1,a),2),2) < 32 then x=x+1
  135. end
  136. if x<2 then diz=pas1
  137. else do
  138.   y=0
  139.   call seek(file,32747)
  140.   pas2=readch(file,21)
  141.     test1=c2x(pas2)
  142.     do a=2 to 21 by 2
  143.       if x2d(right(left(test1,a),2),2) > 90 then y=y+1
  144.       if x2d(right(left(test1,a),2),2) < 32 then y=y+1
  145.     end
  146.  
  147.   if y<x then diz=pas2
  148.   if y>x then diz=pas1
  149.   if pas1=pas2 then diz=pas1
  150.   if diz="" then diz="unknown"
  151. end
  152. big=0
  153.  
  154. diz=left(diz,1)trim(translate(right(diz,length(diz)-1), xrange('a','z'), xrange('A', 'Z')))
  155.  
  156. do a=2 to length(diz)
  157.   if big=1 then do
  158.     diz=left(diz,a-1)Upper(right(left(diz,a),1))right(diz,length(diz)-a)
  159.   end
  160.   big=0
  161.   if right(left(diz,a),1)=" " then big=1
  162.   if right(left(diz,a),1)="." then big=1
  163. end
  164.  
  165. if cdiz="DIZ" then do
  166.   call writeln skriv,"- -[ SNES ]------------------------------- -"
  167.   call writeln skriv,"Name: "diz
  168.   call writeln skriv,"- ------------------------[ FXSNESDIZ ]--- -"
  169. end
  170. else if cdiz="FTP" then do
  171.   call writeln skriv,left(right(Afile,length(Afile)-dire),40) diz
  172. end
  173. if cdiz="COM" then address command("Filenote" '"'Afile'"' '"'diz'"')
  174. if cdiz="" then do
  175.   say ""
  176.   Say "- -[ SNES ]------------------------------- -"
  177. if list=1 then say "FILE: "afile
  178.   say "Name: "diz
  179.   say "- ------------------------[ FXSNESDIZ ]--- -"
  180. end
  181. call close file
  182. return
  183.